1. Field of the Invention
The present invention relates to color management of color image data using measurement data of color devices, and using a tiered caching system to reduce redundant calculations of device transform steps and gamut mapping steps. The present invention stores device transforms and entire transformation sequences in a cache after they are first calculated based on measurement data in their corresponding color management profiles. Each stored device transform and transformation sequence is indexed by a unique hash code which can then be used to retrieve the device transform or transformation sequence, as the case may be, during a subsequent color management process, thereby saving unnecessary computations to re-generate the needed device transform or transformation sequence.
2. Description of the Related Art
Known color management systems typically rely on the use of device profiles which describe the color characteristics of a source device which generated color image data, and of a destination device to which the color image data will be sent for reproduction. Color management systems use the device profiles to transform the color image data from the source device color space into the destination device color space, and to map the colors of the color image data from the gamut of the source device into the gamut of the destination device.
Device profiles are usually defined by a common standard, such as the ICC device profile format. The ICC, has generally standardized upon a profile that contains data that has been processed into an optimized format. The optimization process involves an appearance modeling step, a gamut mapping step, and a second appearance modeling step. The results of all those steps are then processed back into data structures such as matrices and multi-dimensional lookup tables which are placed into the device profile. These data structures were designed in the past so that they could be efficiently processed on computer hardware in existence at that time.
Unfortunately, the appearance modeling process described above to generate the data structures in the device profile result in predetermined matrices and/or look-up tables which combine color space transform steps (device modeling) and gamut mapping together, and which often do not provide a current depiction of the devices color characteristics. In this regard, one possible solution is for device profiles to contain color measurement data corresponding to the color device, so that a color device manufacturer, color management developer, or user could easily read, verify, and even modify the color measurement data to reflect the current device color characteristics or to reflect a unique approach to color management.
The ICC profile format currently supports a tag containing measurement data. However the tag is optional, not mandatory, and so the measurement tag data cannot be depended upon to be available for color management. In addition, changes to the measurement tag data have no effect on the other predetermined tags in the profile, such as the aforementioned matrices and/or look-up tables, and therefore the changes have no effect during color management of color image data when using the profile.
Even if the measurement data were present at the time of performing color management, the measured data would have to be processed to produce the data structures, such as matrices and lookup tables, that the system needs for mapping between device coordinate space and a color appearance space. Then the processed device models would be used to create a data structure, such as a gamut boundary descriptor, that describes the boundaries of the device's gamut. The gamut boundary descriptors, in turn, would be used with a gamut mapping algorithm to create a precise gamut mapping from the source device's gamut into the destination device's gamut. The complete transform from input device space, through a gamut mapping operation and into the destination device's space would therefore be created at runtime of the color management process. Such an approach would provide flexibility, because the transformation sequence would be based on the device measurement data and on user-specified gamut mapping algorithms, instead of stale, predetermined data structures. However, the foregoing process would require significant computing resources and time whenever color image data is rendered.
The ICC format also supports a special device link profile that appears to represent a predetermined transformation sequence. The device link profile represents the results that would be obtained by processing data through an arbitrarily long predetermined sequence of device modeling and gamut mapping steps. Users of such a device link profile have no real visibility of what the steps are, and have no ability to modify, or add to, the sequence of steps. Furthermore, the users must be able to recognize a particular predetermined sequence of transform steps and identify whether a specific device link profile is available that implements the sequence.
As stated above, the ICC profile scheme is not very flexible, and requires that the device profile be rebuilt whenever a user updates the measurements for a device. Even if the user only wants the gamut mapping algorithms supplied by a single profiling tool, this is not very convenient. But if the user wants other gamut mapping algorithms, the user will have to build more profiles using different tools. In addition, all of the predetermined device link profiles derived from the changed device profile will need to be recreated as well. The above problems result in significant additional work on the part of the user of the device profiles, such as a color profile or color management developer.
Accordingly, it is desirable to find one or more solutions to the foregoing problems. Among other solutions, it is desirable to invent a color management scheme which uses current measurement data of the involved color devices, and which can reduce the significant computational overhead associated with creating device transform (modeling) and gamut mapping steps from measurement data every time color image data is rendered by the color management scheme.